package com.acxiom.bsh.logger;

import org.slf4j.Logger;

import com.acxiom.bsh.exception.BshException;


public class BshLogger {
	// The slf4j logger
	private Logger logger;

	/**
	 * 
	 * @param logger
	 */
	public BshLogger(Logger logger) {
		this.logger = logger;
	}

	/**
	 * Return the slf4j for current AcxmLogger
	 * 
	 * @return
	 */
	public Logger getLogger() {
		return logger;
	}

	/**
	 * Trace the message
	 * 
	 * @param msg
	 */
	public void trace(String msg) {
		if (logger.isTraceEnabled()) {
			logger.trace(msg);
		}
	}

	/**
	 * Debug the message
	 * 
	 * @param msg
	 */
	public void debug(String msg) {
		
		if (logger.isDebugEnabled()) {
			logger.debug(msg);
		}
	}

	/**
	 * Info the message
	 * 
	 * @param msg
	 */
	public void info(String msg, Object... var2) {
		if (logger.isInfoEnabled()) {
			logger.info(msg, var2);
		}
	}

	/**
	 * Info the message
	 *
	 * @param msg
	 */
	public void info(String msg) {
		if (logger.isInfoEnabled()) {
			logger.info(msg);
		}
	}
	/**
	 * Warn the message
	 * 
	 * @param msg
	 */
	public void warn(String msg) {
		if (logger.isWarnEnabled()) {
			logger.warn(msg);
		}
	}

	/**
	 * Error the message
	 * 
	 * @param msg
	 */
	public void error(String msg) {
		if (logger.isErrorEnabled()) {
			logger.error(msg);
		}
	}

	/**
	 * Error the FlwException message
	 * 
	 * @param e
	 */
	public void error(BshException e) {
		if (logger.isErrorEnabled()) {
			logger.error(e.getCode() + ", " + e.getMessage());
		}
	}

	/**
	 * Error a common exception
	 * 
	 * @param context
	 * @param e
	 */
	public void error(String context, Exception e) {
		if (logger.isErrorEnabled()) {
			logger.error(context, e);
		}
	}
	
	public void error(String msg, Object... var2) {
		if (logger.isErrorEnabled()) {
			logger.info(msg, var2);
		}
	}

}
